// components/like/index.js
Component({
  /**
   * 组件的属性列表(对外公开的)
   */
  properties: {
    like:{
      type: Boolean, //类型（必填），目前接受的类型包括：String, Number, Boolean, Object, Array, null（表示任意类型）
      value: false,// 属性初始值（可选），如果未指定则会根据类型选择一个
      observer: function(newVal, oldVal, changedPath) {
        // 属性被改变时执行的函数（可选），也可以写成在methods段中定义的方法名字符串, 如：'_propertyChange'
        // 通常 newVal 就是新设置的数据， oldVal 是旧数据
     }
    },
    count:{
      type:Number,
      value:0
    },
    readOnly:{
      type:Boolean
    }

  },

  /**
   * 组件的初始数据（私有的数据）
   */
  data: {
    // 数据绑定
    yesImg:'../images/like.png',
    noImg:'../images/like@dis.png'
  },

  /**
   * 组件的方法列表
   */
  methods: {
    onLike: function (event) {
      if(this.properties.readOnly){
        return ;
      }
      let like = this.properties.like;
      let count = this.properties.count;
      count = like?(count - 1):(count + 1);
      this.setData({
        count:count,
        like:!like
      });
      let behavior = this.properties.like?"like":"cancel";
      //自定义事件
      this.triggerEvent("like" , {
        behavior:behavior,
      } , {});
    }
  }
  
})